1. Field of the Invention
The present invention relates generally to a video file server, and more particularly to a client-server protocol and interface for providing the video server with open network connectivity.
2. Background Art
There are various industry-standard network file access protocols, such as the Network File System (NFS, version 2 and version 3). NFS is a well-known IETF file access protocol standard (RFC 1094, Sun Microsystems, Inc., "NFS: Network File System Protocol Specification," Mar. 1, 1989). NFS acts as a network server for network communications by providing basic file access operations for network clients. Such basic file access operations include opening a file, reading a file, writing to a file, and closing a file.
It is also known to provide a video server with an access protocol supporting isochronous real-time data transmission from continuous media. The file access protocol provides functions such as opening a movie, playing a movie, stopping play of a movie, and "fast forward" and "fast reverse" functions. Such a virtual VCR-type of interface to client applications allows them to create video streams, manipulate them with VCR-like controls and then close them. An example is the Continuous Media File Access Protocol (CMFAP) used by the Continuous Media File System (CMFS) component of a software package available from EMC Corporation, 171 South Street, Hopkinton, Mass., 01748-9103. CMFAP provides a VCR-like functionality that includes commands to Play, Record, Pause, Restart, and Rewind. CMFAP also supports a set of management commands for opening and closing streams, listing all active streams, and redirecting an active playback stream to an alternative display destination.
CMFS is an extent-based file system that allocates file space in large contiguous disk chunks called extents; the size of an extent is a system parameter. Extents of an appropriately chosen size promote file contiguity, simplify disk space management, and are well suited for large files. File contiguity benefits performance in the environment where most files are accessed for read-only, which is a design assumption. Assuming that most files contain interleaved audio and video, there is no need to leave gaps between blocks in anticipation of filling the gaps with frames of a related stream.
CMFS may span several disks. All disks that comprise CMFS are collectively called the CMFS volume set. When a new CMFS file is created, it is written to the disk that contains more free blocks than any other disk within the volume set. The reason for multi-disk volume sets is to increase capacity rather than provide load balancing. Load balancing may be accomplished by exporting multiple file systems.
Each disk in the CMFS volume set is divided into two areas: the data area and the inode area. The data area is used to store file data, while the inode area is used to store inodes that hold file metadata. In addition to the standard file metadata information, the inode contains an array of extent descriptors that locate each extent comprising the corresponding file. An extent descriptor may also point to an inode located on another disk. Such a descriptor is used to point to a continuation inode when a CMFS file spans multiple disks.
Another known protocol for continuous media data transmission is the "Louth Automation" video disk communications protocol, as described in "Video Disk Communications Protocol," Louth Automation, Aug. 30, 1996, pp. 1-39, incorporated herein by reference. This video disk communications protocol uses a tightly coupled master-slave methodology. The controlling device takes the initiative in communications between the controlling device and the controlled device. The topology is point-to-point. The video disk protocol conforms to the OSI (open system interconnection) reference model.